// delayed_test.js - 带延迟的测试
const dotenv = require('dotenv');
const path = require('path');

// 加载环境变量
const envPath = path.resolve(__dirname, '.env');
dotenv.config({ path: envPath });

console.log("开始带延迟的测试...");

async function runTest() {
    try {
        const { addKnowledgePointToStore, searchKnowledgePoints } = require('./services/vectorStoreService');
        console.log("✓ vectorStoreService 导入成功");

        // 创建测试知识点
        const testKp = {
            _id: "test_001",
            title: "React Hooks介绍",
            content: "React Hooks是React 16.8版本引入的新特性，它允许你在不编写class的情况下使用state以及其他的React特性。Hooks是一些可以让你在函数组件里'钩入' React state及生命周期等特性的函数。最常见的Hooks包括useState、useEffect、useContext等。使用Hooks可以让你在函数组件中使用类组件的特性，同时还能解决类组件中的一些问题，比如组件逻辑复用困难、this指向问题等。"
        };

        console.log("添加测试知识点到向量库...");
        await addKnowledgePointToStore(testKp);
        console.log("✓ 知识点添加成功");

        // 等待一段时间确保文件写入完成
        console.log("等待文件写入完成...");
        await new Promise(resolve => setTimeout(resolve, 3000));

        // 测试搜索功能
        console.log("测试搜索功能...");
        const results = await searchKnowledgePoints("React中的useState如何使用？", 2);
        console.log(`✓ 搜索完成，找到 ${results.length} 个结果`);

        console.log("带延迟的测试完成。");
    } catch (error) {
        console.error("✗ 测试失败:", error.message);
        console.error("堆栈跟踪:", error.stack);
    }
}

runTest();